package com.sicpa.system.service;

import java.util.List;
import java.util.Map;
import com.sicpa.system.domain.SysNotice;

/**
 * 公告 服务层
 *
 * @author wph
 */
public interface ISysNoticeService {
    /**
     * 新增公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    public int insertNotice(SysNotice notice);

    /**
     * 通知公告
     *
     * @param
     * @return 公告集合
     */
    public List<SysNotice> selectNoticeList(SysNotice notice);

    /**
     * 查询公告信息
     *
     * @param noticeId 公告ID
     * @return 公告信息
     */
    public SysNotice selectNoticeById(int noticeId);

    /**
     * 修改公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    public int updateNotice(SysNotice notice);

    /**
     * 删除公告信息
     *
     * @param noticeId 公告ID
     * @return 结果
     */
    public int deleteNoticeById(int noticeId);

    /**
     * 批量删除公告信息
     *
     * @param noticeIds 需要删除的公告ID
     * @return 结果
     */
    public int deleteNoticeByIds(int[] noticeIds);

    /**
     * 修改是否已读状态为已读
     *
     * @param noticeId 需要修改状态的公告ID
     * @return 结果
     */
    int updateStatus(int noticeId);

    /**
     * 根据姓名模糊查询用户列表
     *
     * @param name 用户名
     * @return 用户名和用户ID的集合
     */
    List<Map<String, Object>> selectUserList(String name);

    /**
     * 站内信通知个人
     * @param userId
     * @param noticeTitle
     * @param noticeContent
     * @param relatedItem
     * @param relatedId
     * @return
     */
    int stationLetterNotify(Long userId, String noticeTitle, String noticeContent,String relatedItem,Long relatedId);

    /**
     * 获取我的未读消息数量
     *
     * @return
     */
    Integer getMyNoRead();

}
